package StringBuffer;

/**
 * @author 王艺锡
 * @version 1.0
 */
public class StringBufferIntroduce {
    public static void main(String[] args) {
        //1.StringBuffer的直接父类是AbstractStringBuilder
        //2.StringBuffer实现了Serializable,即StringBuffer的对象可以串行化
        //3.在父类中，AbstractStringBuilder有属性char value[],且不是final的
        //该value数组存放字符串内容，因此存放在堆中
        //4.StringBuffer是一个final类，不能被继承
        //5.因为StringBuffer字符内容是存放在char value[]中的，所有变化(增加/删除)
        //不用每次都更换地址(即不是每次都创建新对象)，所以效率高于String

        //1.调用无参构造器，创建一个初始化大小为16的char[]
        StringBuffer stringBuffer1 = new StringBuffer();
        //2.通过构造器指定char[]的大小
        StringBuffer stringBuffer2 = new StringBuffer(100);
        //3.通过给一个String创建stringBuffer的大小，char[]的大小就是str.length()+16
        StringBuffer stringBuffer3 = new StringBuffer("jack");
        System.out.println(stringBuffer3);



        //String转stringBuffer
        String str = "jack";
        //方法1:s使用构造器
       //注意:返回的才是stringBuffer对象，str本身还是String类型的
        StringBuffer stringBuffer = new StringBuffer(str);
        //方法2:使用append方法
        StringBuffer stringBuffer4 = new StringBuffer();
        stringBuffer4 = stringBuffer4.append(str);


        //stringBuffer转String
        StringBuffer StringBuffer05 = new StringBuffer("王艺锡");
       //方法1:使用toString方法
        String s = StringBuffer05.toString();
        //方法2:使用构造器
        String s1 = new String(StringBuffer05);


    }
}
